Морозов М. E.
Российский Университет Дружбы Народов, Moscow, Russian Federation
9 марта 2024
Простейшая модель взаимодействия двух видов типа «хищник — жертва» - модель Лотки-Вольтерры. Данная двувидовая модель основывается на следующих предположениях:
$$ \begin{cases} \frac{dx}{dt} = (-ax(t) + by(t)x(t)) \\ \frac{dy}{dt} = (cy(t) - dy(t)x(t)) \end{cases} $$
В этой модели x – число жертв, y - число хищников. Коэффициент a описывает скорость естественного прироста числа жертв в отсутствие хищников, с - естественное вымирание хищников, лишенных пищи в виде жертв.
Вероятность взаимодействия жертвы и хищника считается пропорциональной как количеству жертв, так и числу самих хищников (xy). Каждый акт взаимодействия уменьшает популяцию жертв, но способствует увеличению популяции хищников (члены − bxy и dxy в правой части уравнения).
В лесу проживают х число волков, питающихся зайцами, число которых в этом же лесу у. Пока число зайцев достаточно велико, для прокормки всех волков, численность волков растет до тех пор, пока не наступит момент, что корма перестанет хватать на всех. Тогда волки начнут умирать, и их численность будет уменьшаться. В этом случае в какой-то момент времени численность зайцев снова начнет увеличиваться, что повлечет за собой новый рост популяции волков. Такой цикл будет повторяться, пока обе популяции будут существовать. Помимо этого, на численность стаи влияют болезни и старение. Данная модель описывается следующим уравнением:
a, d - коэффициенты смертности b, c - коэффициенты прироста популяции 1. Построить график зависимости x от y и графики функций x(t), y(t) 2. Найти стационарное состояние системы
Для модели «хищник-жертва»: $$\dfrac{dx}{dt} = -0.54x(t)-0.031x(t)y(t)$$
$$\dfrac{dy}{dt} = -0.62x(t)+0.07x(t)y(t)$$
Постройте график зависимости численности хищников от численности жертв, а также графики изменения численности хищников и численности жертв при следующих начальных условиях: x0 = 10, y0 = 30. Найдите стационарное состояние системы.
Написали код на Julia:
using DifferentialEquations
using Plots
using OrdinaryDiffEq
#Начальные условия
p=[0.54,0.031,0.62,0.07]
x0=10
y0=30
tspan=(0,50)#функция
function lotka_volt(u,p,t)
x,y = u
a, b, c, d = p
dx = -a*x + b*x*y
dy = c*y - d*x*y
return[dx,dy]
end#cтационарное сост
x1 = p[3]/p[4]
y1 = p[1]/p[2]
#опред проблемы
prob1 = ODEProblem(lotka_volt,[x0,y0],tspan,p)
prob2 = ODEProblem(lotka_volt,[x1,y1],tspan,p)#опред решения
sol1 = solve(prob1, Tsit5(), dtmax=0.05)
sol2 = solve(prob2, Tsit5(), dtmax=0.05)
#графики для 1 и 2 случая а также фазовые портреты.
plot(sol1, title = "Точки x0, y0")
plot(sol1, vars = (2,1), title = "Точки x0, y0")
plot(sol2, title = "Стац. точка")
scatter(sol2, vars = (2,1), title = "Точки x0, y0")model lab5
parameter Real a = 0.54;
parameter Real b = 0.031;
parameter Real c = 0.62;
parameter Real d = 0.07;
Real x(start = 10);
Real y(start = 30);
equation
der(x) = -a*x + b*x*y;
der(y) = c*y - d*x*y;
end lab5;
model lab5
parameter Real a = 0.54;
parameter Real b = 0.031;
parameter Real c = 0.62;
parameter Real d = 0.07;
Real x(start = c/d);
Real y(start = a/b);
equation
der(x) = -a*x + b*x*y;
der(y) = c*y - d*x*y;
end lab5;